package com.ljqc.sbom.management.domain;


import com.ljqc.sbom.management.service.feignClient.dto.CweVO;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

@Entity
@Getter
@Setter
@Table(name = "vulnerability")
public class Vulnerability implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "myid")
    @GenericGenerator(name = "myid", strategy = "com.prism.parser.config.ManualInsertGenerator")
    private Integer id;
    private String cveId;

    private String ljVulId;

    private String noCveId;

    private String dataSource;

    private String acessTypeCn;

    private String acessTypeEn;

    private String cnnvdTitle;

    private String vulnTypeCn;

    private String vulnSeverityCn;

    private String vulnSeverityEn;

    private String updatetime;

    private String vulnSolutionCn;

    private String vulnSolutionEn;

    private String cvssV3;

    private String vulnDescribeCn;

    private String vulnDescribeEn;

    private String cvssV2;

    private String vulnRefs;

    private String vulnTitleCn;

    private String vulnTitleEn;

    private String vulnPublished;

    private String vulnModified;

    private String cwe;

    private String cweTitleEn;

    private String vulnTypeEn;

    private String cnnvdId;

    private Integer expLevel;

    private String vulnRelieveCn;

    private String vulnRelieveEn;

    private String poc;

    //组件漏洞ID
    @Transient
    private String pkgVulId;

    //cvss评分
    @Transient
    private BigDecimal cvssBaseScore;
    //传CWE列表，带上中文名称
    @Transient
    private List<CweVO> cweList;

    //修复链接
    @Transient
    private List<String> patchUrls;

    //参考commit链接
    @Transient
    private List<String> commitUrls;

    public String getPkgVulId() {
        return pkgVulId;
    }

    public void setPkgVulId(String pkgVulId) {
        this.pkgVulId = pkgVulId;
    }

    @Transient
    private Integer isInsert;

    public Integer getIsInsert() {
        return isInsert;
    }

    public void setIsInsert(Integer isInsert) {
        this.isInsert = isInsert;
    }


    public Integer getExpLevel() {
        return expLevel;
    }

    public void setExpLevel(Integer expLevel) {
        this.expLevel = expLevel;
    }
//    @Transient
//    private String decrypthCveId;
//    public String getDecrypthCveId()
//    {
//        return CommonUtil.decryptHexString(cveId);
//    }

//    @Transient
//    private String decryptVulnSeverityCn;
//    public String getDecryptVulnSeverityCn()
//    {
//        return CommonUtil.decryptHexString(vulnSeverityCn);
//    }
//
//    @Transient
//    private String decrypthVulnSeverityEn;
//    public String getDecrypthVulnSeverityEn()
//    {
//        return CommonUtil.decryptHexString(vulnSeverityEn);
//    }
//
//    @Transient
//    private String decrypthVulnSolutionCn;
//    public String getDecrypthVulnSolutionCn()
//    {
//        return CommonUtil.decryptHexString(vulnSolutionCn);
//    }
//    @Transient
//    private String decrypthVulnSolutionEn;
//    public String getDecrypthVulnSolutionEn()
//    {
//        return CommonUtil.decryptHexString(vulnSolutionEn);
//    }
//    @Transient
//    private String decrypthVulnDescribeCn;
//    public String getDecrypthVulnDescribeCn()
//    {
//        return CommonUtil.decryptHexString(vulnDescribeCn);
//    }
//    @Transient
//    private String decrypthVulnDescribeEn;
//    public String getDecrypthVulnDescribeEn()
//    {
//        return CommonUtil.decryptHexString(vulnDescribeEn);
//    }
//    @Transient
//    private String decrypthVulnRefs;
//    public String getDecrypthVulnRefs()
//    {
//        return CommonUtil.decryptHexString(vulnRefs);
//    }
//    @Transient
//    private String decrypthVulnTitleCn;
//    public String getDecrypthVulnTitleCn()
//    {
//        return CommonUtil.decryptHexString(vulnTitleCn);
//    }
//    @Transient
//    private String decrypthVulnTitleEn;
//    public String getDecrypthVulnTitleEn()
//    {
//        return CommonUtil.decryptHexString(vulnTitleEn);
//    }
//    @Transient
//    private String decrypthLjVulId;
//    public String getDecrypthLjVulId()
//    {
//        return CommonUtil.decryptHexString(ljVulId);
//    }
//    @Transient
//    private String decrypthNoCveId;
//    public String getDecrypthNoCveId()
//    {
//        return CommonUtil.decryptHexString(noCveId);
//    }
//    @Transient
//    private String decrypthCnnvdId;
//    public String getDecrypthCnnvdId()
//    {
//        return CommonUtil.decryptHexString(cnnvdId);
//    }
//    @Transient
//    private String decrypthCnnvdTitle;
//    public String getDecrypthCnnvdTitle()
//    {
//        return CommonUtil.decryptHexString(cnnvdTitle);
//    }
//
//
//
//
//
//
//
//    public String getCveId()
//    {
//        return CommonUtil.decryptHexString(cveId);
//    }
//
//
//
//    public String getVulnSeverityCn()
//    {
//        return CommonUtil.decryptHexString(vulnSeverityCn);
//    }
//
//
//    public String getVulnSeverityEn()
//    {
//        return CommonUtil.decryptHexString(vulnSeverityEn);
//    }
//
//
//    public String getVulnSolutionCn()
//    {
//        return CommonUtil.decryptHexString(vulnSolutionCn);
//    }
//
//
//    public String getVulnSolutionEn()
//    {
//        return CommonUtil.decryptHexString(vulnSolutionEn);
//    }
//
//
//    public String getVulnDescribeCn()
//    {
//        return CommonUtil.decryptHexString(vulnDescribeCn);
//    }
//
//
//    public String getVulnDescribeEn()
//    {
//        return CommonUtil.decryptHexString(vulnDescribeEn);
//    }
//
//    public String getVulnRefs()
//    {
//        return CommonUtil.decryptHexString(vulnRefs);
//    }
//
//    public String getVulnTitleCn()
//    {
//        return CommonUtil.decryptHexString(vulnTitleCn);
//    }
//
//
//    public String getVulnTitleEn()
//    {
//        return CommonUtil.decryptHexString(vulnTitleEn);
//    }
//
//
//    public String getLjVulId()
//    {
//        return CommonUtil.decryptHexString(ljVulId);
//    }
//
//
//
//    public String getNoCveId()
//    {
//        return CommonUtil.decryptHexString(noCveId);
//    }
//
//
//
//    public String getCnnvdId()
//    {
//        return CommonUtil.decryptHexString(cnnvdId);
//    }


}
